package com.zoe.onelink.annotation.data.sensitive.enumeration;

/**
 * <p>标题: 脱敏策略枚举</p>
 * <p>描述: </p>
 * <p>版权: Copyright (c) 2021</p>
 * <p>公司: 智业软件股份有限公司</p>
 *
 * @version: 1.0
 * @author: ruansheng
 * @date: 2021-11-11
 */
public enum SensitiveStrategy {

    /**
     * 自定义类型,需要手动传入args,args[0]=开始位置,args[1]=结束保留N位
     * 例：@SensitiveField(value = SensitiveType.CUSTOM, args = {"1", "2"})
     * 123456789 => 1******89
     */
    CUSTOM,
    /**
     * 手机号码 135****2210
     */
    PHONE,

    /**
     * 邮箱 onelink@zoe.com o******@zoe.com
     */
    EMAIL,

    /**
     * 身份证 350322********1010
     */
    ID_CARD,

    /**
     * 中文名 吴某某 => 吴** , 张三 => 张*
     */
    CHINESE_NAME,

    /**
     * 密码 *****
     */
    PASSWORD,

    /**
     * 车牌号
     * 闽D40000 -》 闽D4***0
     */
    CAR_NUM,

    /**
     * 银行卡(会默认添加空格,如果不需要可直接使用COMMON类型)
     * 11011111222233333256 => 1101 **** **** **** 3256
     */
    BANK_CARD,

    /**
     * 住址
     * 入参1 (可选) : 要脱敏的字符数量 , 为空默认脱敏整个字符串长度的一半
     * 例如入参为3,则文本 "测试脱敏文本" => "测试脱***"
     */
    ADDRESS;

}
